package org.springframework.security.config.annotation;

/**
 * @author Dillon
 * @date 2024/7/4
 * @slogan 致敬大师 致敬未来的你
 * @desc security 定义构建接口，用来构建并返回配置好的安全对象
 */
public interface SecurityConfigurer<O, B extends SecurityBuilder<O>> {

	/**
	 * 初始化构建对象
	 * 该方法只能时创建和修改共享状态，不能设置构建都西昂上的属性
	 *
	 * @param builder 构建对象
	 * @throws Exception 执行异常
	 */
	void init(B builder) throws Exception;

	/**
	 * 配置构建对象 设置必要的属性等
	 *
	 * @param builder 构建对象
	 * @throws Exception 执行异常
	 */
	void configure(B builder) throws Exception;

}
